﻿using System;
using AutoPoco.Engine;

namespace AutoPoco.DataSources
{
    public class StreetSource : DatasourceBase<String>
    {
        private readonly Random _random = new Random(1337);

        public override string Next(IGenerationSession  context)
        {
            return Streets[_random.Next(0, Streets.Length)];
        }

        private static readonly string[] Streets = new[]{
            "980-5743 Risus St.",
            "163-3157 Vulputate, Ave",
            "761-1360 Nec Av.",
            "5681 Lorem Ave",
            "P.O. Box 178, 5777 Quis, Rd.",
            "Ap #116-4032 Dui. Rd.",
            "580-3557 Auctor Avenue",
            "P.O. Box 117, 5176 Quis St.",
            "Ap #172-5984 Morbi Street",
            "Ap #309-1293 Sed St.",
            "Ap #407-6892 Enim. Rd.",
            "143-129 Porttitor Avenue",
            "9552 Natoque Rd.",
            "P.O. Box 226, 5227 Rutrum. Street",
            "5633 Posuere Rd.",
            "P.O. Box 867, 1154 Varius. Avenue",
            "P.O. Box 889, 6876 Donec St.",
            "334-2109 Vel, St.",
            "P.O. Box 394, 8145 Aenean Street",
            "4406 Sem Street",
            "7268 Dui Avenue",
            "127-6722 Natoque Ave",
            "1777 Diam Av.",
            "P.O. Box 687, 9599 Aliquam St.",
            "P.O. Box 521, 6770 Nostra, St.",
            "P.O. Box 407, 8220 Gravida Ave",
            "798-1902 Sapien St.",
            "9790 Eu, Rd.",
            "Ap #297-7420 Amet, Av.",
            "Ap #483-4414 Bibendum Road",
            "Ap #445-6090 Viverra. Road",
            "P.O. Box 859, 686 Libero St.",
            "700-9201 Tortor Rd.",
            "P.O. Box 657, 6787 Nam Av.",
            "Ap #778-6268 Cursus Road",
            "P.O. Box 981, 6069 Ornare. St.",
            "1578 Faucibus Road",
            "804-7300 Vestibulum Rd.",
            "P.O. Box 844, 1920 At Av.",
            "747-8748 Sit Ave",
            "3322 Tincidunt, Road",
            "2060 Dictum Ave",
            "P.O. Box 562, 4151 Accumsan Avenue",
            "Ap #317-1046 Natoque Rd.",
            "496 Nibh. St.",
            "589 Et, St.",
            "653-4914 Morbi Rd.",
            "640-9375 Pellentesque St.",
            "P.O. Box 200, 5146 Turpis. Rd.",
            "8311 Duis Rd.",
            "P.O. Box 301, 3614 Non Rd.",
            "964-819 Arcu. St.",
            "8759 Ad St.",
            "672-5985 Iaculis Rd.",
            "Ap #124-7877 Mauris Street",
            "980-7669 Orci St.",
            "6950 Sed Av.",
            "P.O. Box 976, 1712 Integer St.",
            "P.O. Box 733, 9447 Bibendum. Avenue",
            "809-9403 Pede, Rd.",
            "1878 Non Road",
            "5849 Ornare Av.",
            "Ap #728-4800 Felis, Street",
            "P.O. Box 321, 7097 Ac, Rd.",
            "6592 Facilisi. St.",
            "188-3165 Enim. St.",
            "P.O. Box 890, 3542 Cras Road",
            "Ap #456-4455 Suspendisse Rd.",
            "777-5404 Semper, Avenue",
            "6656 A Street",
            "647-3759 Nulla St.",
            "Ap #409-6279 Dolor Street",
            "Ap #125-7544 Augue Rd.",
            "P.O. Box 177, 9039 Est Road",
            "645-9009 Faucibus Rd.",
            "3829 Ipsum St.",
            "2019 Pulvinar Rd.",
            "Ap #317-6479 Adipiscing Road",
            "739-2471 Eget Rd.",
            "2797 Lorem Ave",
            "115-8554 Aliquam Street",
            "806-5658 Eget Road",
            "6490 Magna Ave",
            "3997 Malesuada Ave",
            "Ap #760-4956 Nec Road",
            "P.O. Box 514, 8356 Nonummy. St.",
            "P.O. Box 148, 6806 Nunc Rd.",
            "Ap #415-4887 Nisi St.",
            "P.O. Box 632, 8943 Auctor, St.",
            "723-860 Dolor. Street",
            "381-5217 Penatibus Av.",
            "Ap #254-9956 Ut Rd.",
            "514-1731 Morbi St.",
            "P.O. Box 691, 2836 Sit Avenue",
            "787-2475 Tincidunt Rd.",
            "631-4463 Nunc Ave",
            "P.O. Box 130, 5852 Cras Street",
            "P.O. Box 334, 1838 Dui. St.",
            "603-831 Sed Rd.",
            "6901 Tellus Ave"
        };
    }
}
